package remoto;

import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;
import java.util.ArrayList;
import java.util.List;

import dominio.RemitoCliente;
import dto.RemitoClienteTO;

public class GestionRemitosCliente {
	private static GestionRemitosCliente instance;

	public static GestionRemitosCliente getInstance() throws MalformedURLException, RemoteException, NotBoundException {
		if (instance == null)
			instance = new GestionRemitosCliente();
		return instance;
	}

	private IGestionRemitosCliente remoto;

	private GestionRemitosCliente() throws MalformedURLException, RemoteException, NotBoundException {
		remoto = (IGestionRemitosCliente) Naming.lookup("GestionRemitosCliente");
	}

	public int guardarRemitoCliente(RemitoCliente r) throws RemoteException {
		return remoto.guardarRemitoCliente(r.getDTO());
	}

	public RemitoCliente buscarRemitoCliente(int id) throws RemoteException {
		RemitoClienteTO dto = remoto.buscarRemitoCliente(id);
		if (dto != null)
			return RemitoCliente.fromDTO(dto);
		return null;
	}

	public List<RemitoCliente> listarRemitosPendientes() throws RemoteException {
		List<RemitoCliente> lista = new ArrayList<RemitoCliente>();
		List<RemitoClienteTO> dtos = remoto.listarRemitosPendientes();
		for (RemitoClienteTO dto : dtos)
			lista.add(RemitoCliente.fromDTO(dto));
		return lista;
	}
}